package com.dingreading.cloud.admin.service;

import com.dingreading.cloud.admin.entity.CourseTypes;
import com.mybatisflex.core.service.IService;

import java.util.List;

/**
 * 服务层。
 *
 * @author Administrator
 * @since 2023-11-22
 */
public interface CourseTypesService extends IService<CourseTypes> {

    // 查分类名重复了
    Long duplicationMainName(Long id, String name);

    // 获取最大的主分类展示序号
    int getMaxShowOrder(Long parentId);

    // 更新分类启用状态
    void updateEnabled(Long id, Integer enabled);

    List<CourseTypes> getMainCourseTypes(Integer enable);

    // 根据主分类id获取
    List<CourseTypes> getByMainId(Long id);

    // 删除分类及子分类
    long dropByParentId(Long id);

    // 更新节点
    boolean updateNodes(Long id, String nodes);

    // 更新节点和主分类id
    boolean updateMainIdAndNodes(Long id, String nodes);

    // 根据节点和不是分类id获取
    List<CourseTypes> getByNodesNotId(String nodes, Long id);

    // 获取大于当前序号的对象
    CourseTypes getGtShowOrder(Long parentId, Integer showOrder);

    // 获取小于当前序号的对象
    CourseTypes getLtShowOrder(Long parentId, Integer showOrder);

    // 设置序号
    void updateShowOrder(Long id, Integer orderNum);

    // 按分类获取所有
    List<CourseTypes> getAllTypes();

    boolean updateEnabledByParentId(Long id, Integer enabled);

    List<String> getByCourseTypeIdList(List<Long> courseTypeIdList);
}
